In distributed data storage systems, it is desirable to distribute the workload for managing and storing data across a large number of nodes, and to provide linear or near-linear scalability. In such systems, a SEDA (Staged Event-Driven Architecture) may be employed and work may be accomplished in such systems by utilizing a workflow object. In distributed data storage systems in which redundancy is implemented to ensure a desired level of reliability, the system should guarantee that work (such as the addition, deletion, or change of data) has been durably committed to disk. One way to guarantee this is to perform the work and then subsequently perform a verification that changes have been durably committed to disk, and, after the verification, send an acknowledgment to the client application that made the work request. Some systems may implement a two-phase commit protocol to accomplish this goal, but those systems may not offer the desired level of scalability.
Further, in distributed and redundant data storage systems, it may be desirable to maintain a history of work transactions that occurred in the data storage system to assist in recovery from non-catastrophic failures.